require("../../@babel/runtime/helpers/Arrayincludes");

var n = require("../../@babel/runtime/helpers/typeof"), t = "function" == typeof Symbol && "symbol" == n(Symbol.iterator) ? function(t) {
    return n(t);
} : function(t) {
    return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : n(t);
}, r = "function" == typeof Symbol && "symbol" === t(Symbol.iterator) ? function(n) {
    return void 0 === n ? "undefined" : t(n);
} : function(n) {
    return n && "function" == typeof Symbol && n.constructor === Symbol && n !== Symbol.prototype ? "symbol" : void 0 === n ? "undefined" : t(n);
};

(function() {
    function n() {}
    function t(n) {
        return n instanceof t ? n : this instanceof t ? void (this._wrapped = n) : new t(n);
    }
    var e = Array.prototype, u = Object.prototype, i = Function.prototype, o = e.push, c = e.slice, a = u.toString, l = u.hasOwnProperty, f = Array.isArray, s = Object.keys, p = i.bind, h = Object.create;
    function y(n, t, r) {
        if (void 0 === t) return n;
        switch (null == r ? 3 : r) {
          case 1:
            return function(r) {
                return n.call(t, r);
            };

          case 2:
            return function(r, e) {
                return n.call(t, r, e);
            };

          case 3:
            return function(r, e, u) {
                return n.call(t, r, e, u);
            };

          case 4:
            return function(r, e, u, i) {
                return n.call(t, r, e, u, i);
            };
        }
        return function() {
            return n.apply(t, arguments);
        };
    }
    function v(n, r, e) {
        return null == n ? t.identity : t.isFunction(n) ? y(n, r, e) : t.isObject(n) ? t.matcher(n) : t.property(n);
    }
    function d(r) {
        return t.isObject(r) ? h ? h(r) : (n.prototype = r, r = new n(), n.prototype = null, 
        r) : {};
    }
    function g(n) {
        return "number" == typeof (n = null != n && n.length) && 0 <= n && n <= b;
    }
    (module.exports = t).VERSION = "1.8.2", t.iteratee = function(n, t) {
        return v(n, t, 1 / 0);
    };
    var m = function(n, t) {
        return function(r) {
            var e = arguments.length;
            if (e < 2 || null == r) return r;
            for (var u = 1; u < e; u++) for (var i = arguments[u], o = n(i), c = o.length, a = 0; a < c; a++) {
                var l = o[a];
                t && void 0 !== r[l] || (r[l] = i[l]);
            }
            return r;
        };
    }, b = Math.pow(2, 53) - 1;
    function j(n) {
        return function(r, e, u, i) {
            e = y(e, i, 4);
            var o = !g(r) && t.keys(r), c = (o || r).length;
            i = 0 < n ? 0 : c - 1;
            return arguments.length < 3 && (u = r[o ? o[i] : i], i += n), function(t, r, e, u, i, o) {
                for (;0 <= i && i < o; i += n) {
                    var c = u ? u[i] : i;
                    e = r(e, t[c], c, t);
                }
                return e;
            }(r, e, u, o, i, c);
        };
    }
    function _(n, r, e, u) {
        for (var i = [], o = 0, c = u || 0, a = n && n.length; c < a; c++) {
            var l = n[c];
            if (g(l) && (t.isArray(l) || t.isArguments(l))) {
                r || (l = _(l, r, e));
                var f = 0, s = l.length;
                for (i.length += s; f < s; ) i[o++] = l[f++];
            } else e || (i[o++] = l);
        }
        return i;
    }
    function x(n) {
        return function(t, r, e) {
            r = v(r, e);
            for (var u = null != t && t.length, i = 0 < n ? 0 : u - 1; 0 <= i && i < u; i += n) if (r(t[i], i, t)) return i;
            return -1;
        };
    }
    function w(n, r, e, u, i) {
        return u instanceof r ? (e = d(n.prototype), i = n.apply(e, i), t.isObject(i) ? i : e) : n.apply(e, i);
    }
    t.each = t.forEach = function(n, r, e) {
        if (r = y(r, e), g(n)) for (i = 0, o = n.length; i < o; i++) r(n[i], i, n); else for (var u = t.keys(n), i = 0, o = u.length; i < o; i++) r(n[u[i]], u[i], n);
        return n;
    }, t.map = t.collect = function(n, r, e) {
        r = v(r, e);
        for (var u = !g(n) && t.keys(n), i = (u || n).length, o = Array(i), c = 0; c < i; c++) {
            var a = u ? u[c] : c;
            o[c] = r(n[a], a, n);
        }
        return o;
    }, t.reduce = t.foldl = t.inject = j(1), t.reduceRight = t.foldr = j(-1), t.find = t.detect = function(n, r, e) {
        if (void 0 !== (e = g(n) ? t.findIndex(n, r, e) : t.findKey(n, r, e)) && -1 !== e) return n[e];
    }, t.filter = t.select = function(n, r, e) {
        var u = [];
        return r = v(r, e), t.each(n, function(n, t, e) {
            r(n, t, e) && u.push(n);
        }), u;
    }, t.reject = function(n, r, e) {
        return t.filter(n, t.negate(v(r)), e);
    }, t.every = t.all = function(n, r, e) {
        r = v(r, e);
        for (var u = !g(n) && t.keys(n), i = (u || n).length, o = 0; o < i; o++) {
            var c = u ? u[o] : o;
            if (!r(n[c], c, n)) return !1;
        }
        return !0;
    }, t.some = t.any = function(n, r, e) {
        r = v(r, e);
        for (var u = !g(n) && t.keys(n), i = (u || n).length, o = 0; o < i; o++) {
            var c = u ? u[o] : o;
            if (r(n[c], c, n)) return !0;
        }
        return !1;
    }, t.contains = t.includes = t.include = function(n, r, e) {
        return g(n) || (n = t.values(n)), 0 <= t.indexOf(n, r, "number" == typeof e && e);
    }, t.invoke = function(n, r) {
        var e = c.call(arguments, 2), u = t.isFunction(r);
        return t.map(n, function(n) {
            var t = u ? r : n[r];
            return null == t ? t : t.apply(n, e);
        });
    }, t.pluck = function(n, r) {
        return t.map(n, t.property(r));
    }, t.where = function(n, r) {
        return t.filter(n, t.matcher(r));
    }, t.findWhere = function(n, r) {
        return t.find(n, t.matcher(r));
    }, t.max = function(n, r, e) {
        var u, i, o = -1 / 0, c = -1 / 0;
        if (null == r && null != n) for (var a = 0, l = (n = g(n) ? n : t.values(n)).length; a < l; a++) u = n[a], 
        o < u && (o = u); else r = v(r, e), t.each(n, function(n, t, e) {
            i = r(n, t, e), (c < i || i === -1 / 0 && o === -1 / 0) && (o = n, c = i);
        });
        return o;
    }, t.min = function(n, r, e) {
        var u, i, o = 1 / 0, c = 1 / 0;
        if (null == r && null != n) for (var a = 0, l = (n = g(n) ? n : t.values(n)).length; a < l; a++) (u = n[a]) < o && (o = u); else r = v(r, e), 
        t.each(n, function(n, t, e) {
            ((i = r(n, t, e)) < c || i === 1 / 0 && o === 1 / 0) && (o = n, c = i);
        });
        return o;
    }, t.shuffle = function(n) {
        for (var r, e = g(n) ? n : t.values(n), u = e.length, i = Array(u), o = 0; o < u; o++) (r = t.random(0, o)) !== o && (i[o] = i[r]), 
        i[r] = e[o];
        return i;
    }, t.sample = function(n, r, e) {
        return null == r || e ? (g(n) || (n = t.values(n)), n[t.random(n.length - 1)]) : t.shuffle(n).slice(0, Math.max(0, r));
    }, t.sortBy = function(n, r, e) {
        return r = v(r, e), t.pluck(t.map(n, function(n, t, e) {
            return {
                value: n,
                index: t,
                criteria: r(n, t, e)
            };
        }).sort(function(n, t) {
            var r = n.criteria, e = t.criteria;
            if (r !== e) {
                if (e < r || void 0 === r) return 1;
                if (r < e || void 0 === e) return -1;
            }
            return n.index - t.index;
        }), "value");
    }, i = function(n) {
        return function(r, e, u) {
            var i = {};
            return e = v(e, u), t.each(r, function(t, u) {
                u = e(t, u, r), n(i, t, u);
            }), i;
        };
    }, t.groupBy = i(function(n, r, e) {
        t.has(n, e) ? n[e].push(r) : n[e] = [ r ];
    }), t.indexBy = i(function(n, t, r) {
        n[r] = t;
    }), t.countBy = i(function(n, r, e) {
        t.has(n, e) ? n[e]++ : n[e] = 1;
    }), t.toArray = function(n) {
        return n ? t.isArray(n) ? c.call(n) : g(n) ? t.map(n, t.identity) : t.values(n) : [];
    }, t.size = function(n) {
        return null == n ? 0 : (g(n) ? n : t.keys(n)).length;
    }, t.partition = function(n, r, e) {
        r = v(r, e);
        var u = [], i = [];
        return t.each(n, function(n, t, e) {
            (r(n, t, e) ? u : i).push(n);
        }), [ u, i ];
    }, t.first = t.head = t.take = function(n, r, e) {
        if (null != n) return null == r || e ? n[0] : t.initial(n, n.length - r);
    }, t.initial = function(n, t, r) {
        return c.call(n, 0, Math.max(0, n.length - (null == t || r ? 1 : t)));
    }, t.last = function(n, r, e) {
        if (null != n) return null == r || e ? n[n.length - 1] : t.rest(n, Math.max(0, n.length - r));
    }, t.rest = t.tail = t.drop = function(n, t, r) {
        return c.call(n, null == t || r ? 1 : t);
    }, t.compact = function(n) {
        return t.filter(n, t.identity);
    }, t.flatten = function(n, t) {
        return _(n, t, !1);
    }, t.without = function(n) {
        return t.difference(n, c.call(arguments, 1));
    }, t.uniq = t.unique = function(n, r, e, u) {
        if (null == n) return [];
        t.isBoolean(r) || (u = e, e = r, r = !1), null != e && (e = v(e, u));
        for (var i = [], o = [], c = 0, a = n.length; c < a; c++) {
            var l = n[c], f = e ? e(l, c, n) : l;
            r ? (c && o === f || i.push(l), o = f) : e ? t.contains(o, f) || (o.push(f), i.push(l)) : t.contains(i, l) || i.push(l);
        }
        return i;
    }, t.union = function() {
        return t.uniq(_(arguments, !0, !0));
    }, t.intersection = function(n) {
        if (null == n) return [];
        for (var r = [], e = arguments.length, u = 0, i = n.length; u < i; u++) {
            var o = n[u];
            if (!t.contains(r, o)) {
                for (var c = 1; c < e && t.contains(arguments[c], o); c++) ;
                c === e && r.push(o);
            }
        }
        return r;
    }, t.difference = function(n) {
        var r = _(arguments, !0, !0, 1);
        return t.filter(n, function(n) {
            return !t.contains(r, n);
        });
    }, t.zip = function() {
        return t.unzip(arguments);
    }, t.unzip = function(n) {
        for (var r = n && t.max(n, "length").length || 0, e = Array(r), u = 0; u < r; u++) e[u] = t.pluck(n, u);
        return e;
    }, t.object = function(n, t) {
        for (var r = {}, e = 0, u = n && n.length; e < u; e++) t ? r[n[e]] = t[e] : r[n[e][0]] = n[e][1];
        return r;
    }, t.indexOf = function(n, r, e) {
        var u = 0, i = n && n.length;
        if ("number" == typeof e) u = e < 0 ? Math.max(0, i + e) : e; else if (e && i) return n[u = t.sortedIndex(n, r)] === r ? u : -1;
        if (r != r) return t.findIndex(c.call(n, u), t.isNaN);
        for (;u < i; u++) if (n[u] === r) return u;
        return -1;
    }, t.lastIndexOf = function(n, r, e) {
        var u = n ? n.length : 0;
        if ("number" == typeof e && (u = e < 0 ? u + e + 1 : Math.min(u, e + 1)), r != r) return t.findLastIndex(c.call(n, 0, u), t.isNaN);
        for (;0 <= --u; ) if (n[u] === r) return u;
        return -1;
    }, t.findIndex = x(1), t.findLastIndex = x(-1), t.sortedIndex = function(n, t, r, e) {
        for (var u = (r = v(r, e, 1))(t), i = 0, o = n.length; i < o; ) {
            var c = Math.floor((i + o) / 2);
            r(n[c]) < u ? i = c + 1 : o = c;
        }
        return i;
    }, t.range = function(n, t, r) {
        arguments.length <= 1 && (t = n || 0, n = 0), r = r || 1;
        for (var e = Math.max(Math.ceil((t - n) / r), 0), u = Array(e), i = 0; i < e; i++, 
        n += r) u[i] = n;
        return u;
    }, t.bind = function(n, r) {
        if (p && n.bind === p) return p.apply(n, c.call(arguments, 1));
        if (!t.isFunction(n)) throw new TypeError("Bind must be called on a function");
        var e = c.call(arguments, 2);
        return function t() {
            return w(n, t, r, this, e.concat(c.call(arguments)));
        };
    }, t.partial = function(n) {
        var r = c.call(arguments, 1);
        return function e() {
            for (var u = 0, i = r.length, o = Array(i), c = 0; c < i; c++) o[c] = r[c] === t ? arguments[u++] : r[c];
            for (;u < arguments.length; ) o.push(arguments[u++]);
            return w(n, e, this, this, o);
        };
    }, t.bindAll = function(n) {
        var r, e, u = arguments.length;
        if (u <= 1) throw new Error("bindAll must be passed function names");
        for (r = 1; r < u; r++) n[e = arguments[r]] = t.bind(n[e], n);
        return n;
    }, t.memoize = function(n, r) {
        function e(u) {
            var i = e.cache;
            u = "" + (r ? r.apply(this, arguments) : u);
            return t.has(i, u) || (i[u] = n.apply(this, arguments)), i[u];
        }
        return e.cache = {}, e;
    }, t.defer = t.partial(t.delay = function(n, t) {
        var r = c.call(arguments, 2);
        return setTimeout(function() {
            return n.apply(null, r);
        }, t);
    }, t, 1), t.throttle = function(n, r, e) {
        var u, i, o, c = null, a = 0;
        function l() {
            a = !1 === e.leading ? 0 : t.now(), c = null, o = n.apply(u, i), c || (u = i = null);
        }
        return e = e || {}, function() {
            var f = t.now();
            a || !1 !== e.leading || (a = f);
            var s = r - (f - a);
            return u = this, i = arguments, s <= 0 || r < s ? (c && (clearTimeout(c), c = null), 
            a = f, o = n.apply(u, i), c || (u = i = null)) : c || !1 === e.trailing || (c = setTimeout(l, s)), 
            o;
        };
    }, t.debounce = function(n, r, e) {
        function u() {
            var f = t.now() - a;
            f < r && 0 <= f ? i = setTimeout(u, r - f) : (i = null, e || (l = n.apply(c, o), 
            i || (c = o = null)));
        }
        var i, o, c, a, l;
        return function() {
            c = this, o = arguments, a = t.now();
            var f = e && !i;
            return i = i || setTimeout(u, r), f && (l = n.apply(c, o), c = o = null), l;
        };
    }, t.wrap = function(n, r) {
        return t.partial(r, n);
    }, t.negate = function(n) {
        return function() {
            return !n.apply(this, arguments);
        };
    }, t.compose = function() {
        var n = arguments, t = n.length - 1;
        return function() {
            for (var r = t, e = n[t].apply(this, arguments); r--; ) e = n[r].call(this, e);
            return e;
        };
    }, t.after = function(n, t) {
        return function() {
            if (--n < 1) return t.apply(this, arguments);
        };
    }, t.once = t.partial(t.before = function(n, t) {
        var r;
        return function() {
            return 0 < --n && (r = t.apply(this, arguments)), n <= 1 && (t = null), r;
        };
    }, 2);
    var A = !{
        toString: null
    }.propertyIsEnumerable("toString"), O = [ "valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString" ];
    function S(n, r) {
        var e = O.length, i = n.constructor, o = t.isFunction(i) && i.prototype || u, c = "constructor";
        for (t.has(n, c) && !t.contains(r, c) && r.push(c); e--; ) (c = O[e]) in n && n[c] !== o[c] && !t.contains(r, c) && r.push(c);
    }
    function k(n, e, u, i) {
        if (n === e) return 0 !== n || 1 / n == 1 / e;
        if (null == n || null == e) return n === e;
        if (n instanceof t && (n = n._wrapped), e instanceof t && (e = e._wrapped), (l = a.call(n)) !== a.call(e)) return !1;
        switch (l) {
          case "[object RegExp]":
          case "[object String]":
            return "" + n == "" + e;

          case "[object Number]":
            return +n != +n ? +e != +e : 0 == +n ? 1 / +n == 1 / e : +n == +e;

          case "[object Date]":
          case "[object Boolean]":
            return +n == +e;
        }
        var o = "[object Array]" === l;
        if (!o) {
            if ("object" != (void 0 === n ? "undefined" : r(n)) || "object" != (void 0 === e ? "undefined" : r(e))) return !1;
            var c = n.constructor, l = e.constructor;
            if (c !== l && !(t.isFunction(c) && c instanceof c && t.isFunction(l) && l instanceof l) && "constructor" in n && "constructor" in e) return !1;
        }
        i = i || [];
        for (var f = (u = u || []).length; f--; ) if (u[f] === n) return i[f] === e;
        if (u.push(n), i.push(e), o) {
            if ((f = n.length) !== e.length) return !1;
            for (;f--; ) if (!k(n[f], e[f], u, i)) return !1;
        } else {
            var s, p = t.keys(n);
            f = p.length;
            if (t.keys(e).length !== f) return !1;
            for (;f--; ) if (s = p[f], !t.has(e, s) || !k(n[s], e[s], u, i)) return !1;
        }
        return u.pop(), i.pop(), !0;
    }
    t.keys = function(n) {
        if (!t.isObject(n)) return [];
        if (s) return s(n);
        var r, e = [];
        for (r in n) t.has(n, r) && e.push(r);
        return A && S(n, e), e;
    }, t.allKeys = function(n) {
        if (!t.isObject(n)) return [];
        var r, e = [];
        for (r in n) e.push(r);
        return A && S(n, e), e;
    }, t.values = function(n) {
        for (var r = t.keys(n), e = r.length, u = Array(e), i = 0; i < e; i++) u[i] = n[r[i]];
        return u;
    }, t.mapObject = function(n, r, e) {
        r = v(r, e);
        for (var u, i = t.keys(n), o = i.length, c = {}, a = 0; a < o; a++) c[u = i[a]] = r(n[u], u, n);
        return c;
    }, t.pairs = function(n) {
        for (var r = t.keys(n), e = r.length, u = Array(e), i = 0; i < e; i++) u[i] = [ r[i], n[r[i]] ];
        return u;
    }, t.invert = function(n) {
        for (var r = {}, e = t.keys(n), u = 0, i = e.length; u < i; u++) r[n[e[u]]] = e[u];
        return r;
    }, t.functions = t.methods = function(n) {
        var r, e = [];
        for (r in n) t.isFunction(n[r]) && e.push(r);
        return e.sort();
    }, t.extend = m(t.allKeys), t.extendOwn = t.assign = m(t.keys), t.findKey = function(n, r, e) {
        r = v(r, e);
        for (var u, i = t.keys(n), o = 0, c = i.length; o < c; o++) if (r(n[u = i[o]], u, n)) return u;
    }, t.pick = function(n, r, e) {
        var u, i, o = {}, c = n;
        if (null == c) return o;
        t.isFunction(r) ? (i = t.allKeys(c), u = y(r, e)) : (i = _(arguments, !1, !1, 1), 
        u = function(n, t, r) {
            return t in r;
        }, c = Object(c));
        for (var a = 0, l = i.length; a < l; a++) {
            var f = i[a], s = c[f];
            u(s, f, c) && (o[f] = s);
        }
        return o;
    }, t.omit = function(n, r, e) {
        var u;
        return r = t.isFunction(r) ? t.negate(r) : (u = t.map(_(arguments, !1, !1, 1), String), 
        function(n, r) {
            return !t.contains(u, r);
        }), t.pick(n, r, e);
    }, t.defaults = m(t.allKeys, !0), t.create = function(n, r) {
        return n = d(n), r && t.extendOwn(n, r), n;
    }, t.clone = function(n) {
        return t.isObject(n) ? t.isArray(n) ? n.slice() : t.extend({}, n) : n;
    }, t.tap = function(n, t) {
        return t(n), n;
    }, t.isMatch = function(n, r) {
        var e = t.keys(r), u = e.length;
        if (null == n) return !u;
        for (var i = Object(n), o = 0; o < u; o++) {
            var c = e[o];
            if (r[c] !== i[c] || !(c in i)) return !1;
        }
        return !0;
    }, t.isEqual = function(n, t) {
        return k(n, t);
    }, t.isEmpty = function(n) {
        return null == n || (g(n) && (t.isArray(n) || t.isString(n) || t.isArguments(n)) ? 0 === n.length : 0 === t.keys(n).length);
    }, t.isElement = function(n) {
        return !(!n || 1 !== n.nodeType);
    }, t.isArray = f || function(n) {
        return "[object Array]" === a.call(n);
    }, t.isObject = function(n) {
        var t = void 0 === n ? "undefined" : r(n);
        return "function" === t || "object" === t && !!n;
    }, t.each([ "Arguments", "Function", "String", "Number", "Date", "RegExp", "Error" ], function(n) {
        t["is" + n] = function(t) {
            return a.call(t) === "[object " + n + "]";
        };
    }), t.isArguments(arguments) || (t.isArguments = function(n) {
        return t.has(n, "callee");
    }), "function" != typeof /./ && "object" != ("undefined" == typeof Int8Array ? "undefined" : r(Int8Array)) && (t.isFunction = function(n) {
        return "function" == typeof n || !1;
    }), t.isFinite = function(n) {
        return isFinite(n) && !isNaN(parseFloat(n));
    }, t.isNaN = function(n) {
        return t.isNumber(n) && n !== +n;
    }, t.isBoolean = function(n) {
        return !0 === n || !1 === n || "[object Boolean]" === a.call(n);
    }, t.isNull = function(n) {
        return null === n;
    }, t.isUndefined = function(n) {
        return void 0 === n;
    }, t.has = function(n, t) {
        return null != n && l.call(n, t);
    }, t.noConflict = function() {
        return root._ = previousUnderscore, this;
    }, t.identity = function(n) {
        return n;
    }, t.constant = function(n) {
        return function() {
            return n;
        };
    }, t.noop = function() {}, t.property = function(n) {
        return function(t) {
            return null == t ? void 0 : t[n];
        };
    }, t.propertyOf = function(n) {
        return null == n ? function() {} : function(t) {
            return n[t];
        };
    }, t.matcher = t.matches = function(n) {
        return n = t.extendOwn({}, n), function(r) {
            return t.isMatch(r, n);
        };
    }, t.times = function(n, t, r) {
        var e = Array(Math.max(0, n));
        t = y(t, r, 1);
        for (var u = 0; u < n; u++) e[u] = t(u);
        return e;
    }, t.random = function(n, t) {
        return null == t && (t = n, n = 0), n + Math.floor(Math.random() * (t - n + 1));
    }, t.now = Date.now || function() {
        return new Date().getTime();
    }, i = {
        "&": "&amp;",
        "<": "&lt;",
        ">": "&gt;",
        '"': "&quot;",
        "'": "&#x27;",
        "`": "&#x60;"
    }, m = t.invert(i), f = function(n) {
        function r(t) {
            return n[t];
        }
        var e = "(?:" + t.keys(n).join("|") + ")", u = RegExp(e), i = RegExp(e, "g");
        return function(n) {
            return n = null == n ? "" : "" + n, u.test(n) ? n.replace(i, r) : n;
        };
    }, t.escape = f(i), t.unescape = f(m), t.result = function(n, r, e) {
        return void 0 === (r = null == n ? void 0 : n[r]) && (r = e), t.isFunction(r) ? r.call(n) : r;
    };
    var F = 0;
    function E(n) {
        return "\\" + M[n];
    }
    t.uniqueId = function(n) {
        var t = ++F + "";
        return n ? n + t : t;
    }, t.templateSettings = {
        evaluate: /<%([\s\S]+?)%>/g,
        interpolate: /<%=([\s\S]+?)%>/g,
        escape: /<%-([\s\S]+?)%>/g
    };
    var I = /(.)^/, M = {
        "'": "'",
        "\\": "\\",
        "\r": "r",
        "\n": "n",
        "\u2028": "u2028",
        "\u2029": "u2029"
    }, N = /\\|'|\r|\n|\u2028|\u2029/g;
    function B(n, r) {
        return n._chain ? t(r).chain() : r;
    }
    t.template = function(n, r, e) {
        !r && e && (r = e), r = t.defaults({}, r, t.templateSettings);
        var u = RegExp([ (r.escape || I).source, (r.interpolate || I).source, (r.evaluate || I).source ].join("|") + "|$", "g"), i = 0, o = "__p+='";
        n.replace(u, function(t, r, e, u, c) {
            return o += n.slice(i, c).replace(N, E), i = c + t.length, r ? o += "'+\n((__t=(" + r + "))==null?'':_.escape(__t))+\n'" : e ? o += "'+\n((__t=(" + e + "))==null?'':__t)+\n'" : u && (o += "';\n" + u + "\n__p+='"), 
            t;
        }), o += "';\n", r.variable || (o = "with(obj||{}){\n" + o + "}\n"), o = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + o + "return __p;\n";
        try {
            var c = new Function(r.variable || "obj", "_", o);
        } catch (r) {
            r = VM2_INTERNAL_STATE_DO_NOT_USE_OR_PROGRAM_WILL_FAIL.handleException(r);
            throw r.source = o, r;
        }
        return e = function(n) {
            return c.call(this, n, t);
        }, u = r.variable || "obj", e.source = "function(" + u + "){\n" + o + "}", e;
    }, t.chain = function(n) {
        return (n = t(n))._chain = !0, n;
    }, (t.mixin = function(n) {
        t.each(t.functions(n), function(r) {
            var e = t[r] = n[r];
            t.prototype[r] = function() {
                var n = [ this._wrapped ];
                return o.apply(n, arguments), B(this, e.apply(t, n));
            };
        });
    })(t), t.each([ "pop", "push", "reverse", "shift", "sort", "splice", "unshift" ], function(n) {
        var r = e[n];
        t.prototype[n] = function() {
            var t = this._wrapped;
            return r.apply(t, arguments), "shift" !== n && "splice" !== n || 0 !== t.length || delete t[0], 
            B(this, t);
        };
    }), t.each([ "concat", "join", "slice" ], function(n) {
        var r = e[n];
        t.prototype[n] = function() {
            return B(this, r.apply(this._wrapped, arguments));
        };
    }), t.prototype.valueOf = t.prototype.toJSON = t.prototype.value = function() {
        return this._wrapped;
    }, t.prototype.toString = function() {
        return "" + this._wrapped;
    };
}).call(void 0);